package com.guomei.bean.curse.domain;

import java.time.LocalDateTime;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;

import lombok.Data;

@Data
@TableName("user_course_join")
public class UserCourseJoin {
    private static final long serialVersionUID = 1L;

    /**
     * ID
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /**
     * 用户ID
     */
    private Long userId;

    /**
     * 课程ID
     */
    private Long courseId;

    /**
     * 学习时长(秒) - 课程下所有视频的累计学习时长
     */
    private Integer learnDuration;

    /**
     * 进度 - 课程学习进度百分比(0-100)
     * 计算方式：(所有视频已学习进度总和 / 课程总时长) × 100
     */
    private Integer progress;

    /**
     * 状态(0-学习中,1-已完成课程所有视频)
     */
    private Short status;

    /**
     * 最后学习时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime lastLearnTime;

    /**
     * 创建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime createdTime;

    /**
     * 更新时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime updatedTime;
    
    // 分页参数（不映射到数据库）
    @TableField(exist = false)
    private Integer pageNum;
    
    @TableField(exist = false)
    private Integer pageSize;

}
